home *** CD-ROM | disk | FTP | other *** search
/ Atari Mega Archive 1 / Atari Mega Archive - Volume 1.iso / telecomm / zmdm.zoo / ymodem.doc < prev    next >
Text File  |  1991-04-27  |  63KB  |  1,681 lines

  1.       
  2.       
  3.       
  4.                                   - 1 -
  5.       
  6.       
  7.       
  8.                      XMODEM/YMODEM PROTOCOL REFERENCE
  9.                  A compendium of documents describing the
  10.       
  11.                             XMODEM and YMODEM
  12.       
  13.                          File Transfer Protocols
  14.       
  15.       
  16.       
  17.       
  18.                    This document was formatted 9-11-86.
  19.       
  20.       
  21.       
  22.       
  23.       
  24.       
  25.       
  26.                          Edited by Chuck Forsberg
  27.       
  28.       
  29.       
  30.       
  31.       
  32.       
  33.       
  34.       
  35.       
  36.       
  37.       
  38.       
  39.       
  40.       
  41.                  Please distribute as widely as possible.
  42.       
  43.                        Questions to Chuck Forsberg
  44.       
  45.       
  46.       
  47.       
  48.       
  49.                            Omen Technology Inc
  50.                         17505-V Sauvie Island Road
  51.                           Portland Oregon 97231
  52.                            Voice: 503-621-3406
  53.             Modem (Telegodzilla): 503-621-3746 Speed 1200,300
  54.                           Compuserve: 70007,2304
  55.                     UUCP: ...!tektronix!reed!omen!caf
  56.       
  57.       
  58.       
  59.       
  60.       
  61.       
  62.       
  63.       
  64.       
  65.       
  66.       
  67.       
  68.       
  69.       
  70.                                   - 2 -
  71.       
  72.       
  73.       
  74.       1.  ROSETTA STONE
  75.       
  76.       Here are some definitions which reflect the current vernacular
  77.       in the computer media. The attempt here is identify the file
  78.       transfer protocol rather than specific programs.
  79.       
  80.       XMODEM refers to the original 1979 file transfer etiquette
  81.        introduced by Ward Christensen's 1979 MODEM2 program.  It's also
  82.        called the MODEM or MODEM2 protocol.  Some who are unaware of MODEM7's
  83.        unusual batch file mode call it MODEM7.  Other aliases include "CP/M
  84.        Users's Group" and "TERM II FTP 3".  This protocol is supported by
  85.        every serious communications program because of its universality,
  86.        simplicity, and reasonable performance.
  87.       
  88.       XMODEM/CRC replaces XMODEM's 1 byte checksum with a two byte Cyclical
  89.        Redundancy Check (CRC-16), giving modern error detection
  90.        protection.
  91.       
  92.       XMODEM-1k Refers to the XMODEM/CRC protocol with 1024 byte data blocks.
  93.       
  94.       YMODEM refers to the XMODEM/CRC (optional 1k blocks) protocol with the
  95.        batch transmission described below.
  96.       
  97.       ZMODEM uses familiar XMODEM/CRC and YMODEM technology in a
  98.        new protocol that provides reliability, throughput, file
  99.        management, and user amenities appropriate to contemporary
  100.        data communications. 
  101.       
  102.       
  103.       2.  YET ANOTHER PROTOCOL?
  104.       
  105.       Since its development half a decade ago, the Ward Christensen modem
  106.       protocol has enabled a wide variety of computer systems to interchange
  107.       data.  There is hardly a communications program that doesn't at least
  108.       claim to support this protocol.
  109.       
  110.       Recent advances in computing, modems and networking have
  111.       revealed a number of weaknesses in the original protocol:
  112.       
  113.          + The short block length caused throughput to suffer when used with
  114.            timesharing systems, packet switched networks, satellite circuits,
  115.            and buffered (error correcting) modems.
  116.       
  117.          + The 8 bit arithmetic checksum and other aspects allowed line
  118.            impairments to interfere with dependable, accurate transfers.
  119.       
  120.          + Only one file could be sent per command.  The file name had to be
  121.            given twice, first to the sending program and then again to the
  122.            receiving program.
  123.       
  124.          + The transmitted file could accumulate as many as 127 extraneous
  125.            bytes.
  126.       
  127.       
  128.       
  129.       Chapter 2  
  130.       
  131.       
  132.       
  133.       
  134.       
  135.       
  136.       X/YMODEM Protocol Reference        09-11-86                        3
  137.       
  138.       
  139.       
  140.          + The modification date of the file was lost.
  141.       
  142.       A number of other protocols have been developed over the
  143.       years, but none  have displaced XMODEM to date:
  144.       
  145.          + Lack of public domain documentation and example programs have kept
  146.            proprietary protocols such as MNP, Blast, and others
  147.            tightly bound to the fortunes of their suppliers. 
  148.       
  149.          + Complexity discourages the widespread application of BISYNC, SDLC,
  150.            HDLC, X.25, and X.PC protocols.
  151.       
  152.          + Performance compromises and moderate complexity have limited the
  153.            popularity of the Kermit protocol, which was developed to allow file
  154.            transfers in environments hostile to XMODEM.
  155.       
  156.       The XMODEM protocol extensions and YMODEM Batch address these
  157.       weaknesses while maintaining XMODEM's simplicity.
  158.       
  159.       YMODEM is supported by the public domain programs YAM (CP/M),
  160.       YAM(CP/M-86), YAM(CCPM-86), IMP (CP/M), KMD (CP/M), rz/sz (Unix, Xenix,
  161.       VMS, Berkeley Unix, Venix, Xenix, Coherent, IDRIS, Regulus).  Commerical
  162.       implementations include MIRROR, and Professional-YAM.[1] Communications
  163.       programs supporting these extensions have been in use since 1981.
  164.       
  165.       The 1k packet length (XMODEM-1k) described below may be used in
  166.       conjunction with YMODEM Batch Protocol, or with single file transfers
  167.       identical to the XMODEM/CRC protocol except for minimal
  168.        changes to support 1k packets.
  169.       
  170.       Another extension is simply called the g option.  It provides maximum
  171.       throughput when used with end to end error correcting media,
  172.       such as X.PC and error correcting modems, including the emerging
  173.       9600 bps units by Electronic Vaults and others.
  174.       
  175.       To complete this tome, Ward Christensen's original protocol document and
  176.       John Byrns's CRC-16 document are included for reference.
  177.       
  178.       References to the MODEM or MODEM7 protocol have been changed
  179.       to XMODEM to accommodate the vernacular. In Australia, it is
  180.       properly called the Christensen Protocol.
  181.       
  182.       
  183.       
  184.       
  185.       
  186.       
  187.       __________
  188.       
  189.        1. Available for IBM PC,XT,AT, Unix and Xenix
  190.       
  191.       
  192.       
  193.       
  194.       Chapter   2
  195.       
  196.       
  197.       
  198.       
  199.       
  200.       
  201.       
  202.       X/YMODEM Protocol Reference         09-11-86                      4
  203.       
  204.       
  205.       
  206.       2.1  Some Messages from the Pioneer
  207.       
  208.       #: 130940 S0/Communications 25-Apr-85  18:38:47
  209.       Sb: my protocol
  210.       Fm: Ward Christensen 76703,302 (EDITED)
  211.       To: all
  212.       
  213.       Be aware the article[2] DID quote me correctly in terms of the
  214.       phrases like "not robust", etc.
  215.       
  216.       It was a quick hack I threw together, very unplanned (like
  217.       everything I do), to satisfy a personal need to communicate with
  218.       "some other" people. 
  219.       
  220.       ONLY the fact that it was done in 8/77, and that I put it in the public
  221.       domain immediately, made it become the standard that it is.
  222.       
  223.       I think its time for me to
  224.       
  225.       (1) document it; (people call me and say "my product is going
  226.           to include  it - what can I 'reference'", or "I'm writing a
  227.           paper on it, what do I put in the bibliography") and
  228.       
  229.       (2) propose an "incremental extension" to it, which might take
  230.           "exactly" the form of Chuck Forsberg's YAM protocol.  He
  231.            wrote YAM in C for CP/M and  put it in the public domain,
  232.            and wrote a batch protocol for Unix[3] called rb and sb
  233.            (receive batch, send batch), which was basically XMODEM with 
  234.           (a) a record 0 containing filename date time and size
  235.           (b) a 1K block size option
  236.           (c) CRC-16.
  237.       
  238.       He did some clever programming to detect false ACK or EOT, but basically
  239.       left them the same.
  240.       
  241.       People who suggest I make SIGNIFICANT changes to the protocol,
  242.       such as "full duplex", "multiple outstanding blocks", "multiple
  243.       destinations", etc etc don't understand that the incredible
  244.       simplicity of the protocol is one of the reasons it survived to
  245.       this day in as many machines and programs as it may be found in!
  246.       
  247.       Consider the PC-NET group back in '77 or so - documenting to
  248.       beat the band 
  249.